/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * VentanaProyecto.java
 *
 * Created on 01-jun-2012, 23:43:11
 */
package edu.eam.gruposenior.gestorLEcciones.vista;

import java.util.List;

import javax.swing.JOptionPane;

import edu.eam.gruposenior.gestorLEcciones.controladores.ProyectoController;
import edu.eam.gruposenior.gestorLEcciones.controladores.TecnologiaController;
import edu.eam.gruposenior.gestorLEcciones.entidades.Proyecto;
import edu.eam.gruposenior.gestorLEcciones.entidades.Tecnologia;
import edu.eam.gruposenior.gestorLEcciones.entidades.TipoProyecto;

/**
 * 
 * @author Claudia
 */
public class VentanaProyecto extends javax.swing.JFrame {
	private ProyectoController control;

	/** Creates new form VentanaProyecto */
	public VentanaProyecto() {
		initComponents();
		control = new ProyectoController();

		List<TipoProyecto> listaPro = control.tiposProyectos();

		for (TipoProyecto tipos : listaPro) {
			cbTipoProyecto.addItem(tipos);
		}

		List<Tecnologia> listaTec = new TecnologiaController().tecnologias();

		for (Tecnologia tec : listaTec) {
			cbTecnologia.addItem(tec);
		}
	}

	/**
	 * This method is called from within the constructor to initialize the form.
	 * WARNING: Do NOT modify this code. The content of this method is always
	 * regenerated by the Form Editor.
	 */
	@SuppressWarnings("unchecked")
	// <editor-fold defaultstate="collapsed"
	// desc="Generated Code">//GEN-BEGIN:initComponents
	private void initComponents() {

		buttonGroup1 = new javax.swing.ButtonGroup();
		jLabel1 = new javax.swing.JLabel();
		jLabel2 = new javax.swing.JLabel();
		jLabel3 = new javax.swing.JLabel();
		jLabel4 = new javax.swing.JLabel();
		jLabel5 = new javax.swing.JLabel();
		jLabel6 = new javax.swing.JLabel();
		jLabel7 = new javax.swing.JLabel();
		dcFechaInicio = new com.toedter.calendar.JDateChooser();
		dcFechaFin = new com.toedter.calendar.JDateChooser();
		tfNombre = new javax.swing.JTextField();
		jScrollPane1 = new javax.swing.JScrollPane();
		taDescripcion = new javax.swing.JTextArea();
		tfIteraciones = new javax.swing.JTextField();
		cbTipoProyecto = new javax.swing.JComboBox();
		cbTecnologia = new javax.swing.JComboBox();
		jLabel8 = new javax.swing.JLabel();
		rbActivo = new javax.swing.JRadioButton();
		rbInactivo = new javax.swing.JRadioButton();
		bCrear = new javax.swing.JButton();
		bEditar = new javax.swing.JButton();
		bBuscar = new javax.swing.JButton();

		setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

		jLabel1.setText("Nombre");

		jLabel2.setText("Descripcion");

		jLabel3.setText("Estado");

		jLabel4.setText("Fecha Inicio");

		jLabel5.setText("Fecha Fin");

		jLabel6.setText("Iteraciones");

		jLabel7.setText("Tipo de Proyecto");

		taDescripcion.setColumns(20);
		taDescripcion.setRows(5);
		jScrollPane1.setViewportView(taDescripcion);

		jLabel8.setText("Tecnologia");

		buttonGroup1.add(rbActivo);
		rbActivo.setText("Activo");

		buttonGroup1.add(rbInactivo);
		rbInactivo.setText("Inactivo");

		bCrear.setIcon(new javax.swing.ImageIcon(getClass().getResource(
				"/edu/eam/gruposenior/gestorLEcciones/vista/imagenes/Add.png"))); // NOI18N
		bCrear.setText("Crear");
		bCrear.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				bCrearActionPerformed(evt);
			}
		});

		bEditar.setIcon(new javax.swing.ImageIcon(
				getClass()
						.getResource(
								"/edu/eam/gruposenior/gestorLEcciones/vista/imagenes/Notepad.png"))); // NOI18N
		bEditar.setText("Editar");
		bEditar.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				bEditarActionPerformed(evt);
			}
		});

		bBuscar.setIcon(new javax.swing.ImageIcon(
				getClass()
						.getResource(
								"/edu/eam/gruposenior/gestorLEcciones/vista/imagenes/Search.png"))); // NOI18N
		bBuscar.setText("Buscar");
		bBuscar.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				bBuscarActionPerformed(evt);
			}
		});

		javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
				getContentPane());
		getContentPane().setLayout(layout);
		layout.setHorizontalGroup(layout
				.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
				.addGroup(
						layout.createSequentialGroup()
								.addContainerGap()
								.addGroup(
										layout.createParallelGroup(
												javax.swing.GroupLayout.Alignment.LEADING,
												false)
												.addComponent(jLabel1)
												.addComponent(jLabel2)
												.addGroup(
														layout.createSequentialGroup()
																.addGroup(
																		layout.createParallelGroup(
																				javax.swing.GroupLayout.Alignment.LEADING)
																				.addComponent(
																						jLabel4)
																				.addComponent(
																						jLabel3)
																				.addComponent(
																						jLabel5))
																.addGap(24, 24,
																		24))
												.addComponent(jLabel6)
												.addComponent(
														jLabel7,
														javax.swing.GroupLayout.DEFAULT_SIZE,
														javax.swing.GroupLayout.DEFAULT_SIZE,
														Short.MAX_VALUE)
												.addComponent(
														jLabel8,
														javax.swing.GroupLayout.DEFAULT_SIZE,
														javax.swing.GroupLayout.DEFAULT_SIZE,
														Short.MAX_VALUE))
								.addPreferredGap(
										javax.swing.LayoutStyle.ComponentPlacement.RELATED)
								.addGroup(
										layout.createParallelGroup(
												javax.swing.GroupLayout.Alignment.LEADING)
												.addGroup(
														layout.createSequentialGroup()
																.addComponent(
																		rbActivo)
																.addPreferredGap(
																		javax.swing.LayoutStyle.ComponentPlacement.RELATED)
																.addComponent(
																		rbInactivo))
												.addComponent(cbTecnologia, 0,
														384, Short.MAX_VALUE)
												.addComponent(cbTipoProyecto,
														0, 384, Short.MAX_VALUE)
												.addComponent(
														tfIteraciones,
														javax.swing.GroupLayout.DEFAULT_SIZE,
														384, Short.MAX_VALUE)
												.addComponent(
														dcFechaFin,
														javax.swing.GroupLayout.DEFAULT_SIZE,
														384, Short.MAX_VALUE)
												.addComponent(
														dcFechaInicio,
														javax.swing.GroupLayout.DEFAULT_SIZE,
														384, Short.MAX_VALUE)
												.addGroup(
														layout.createSequentialGroup()
																.addComponent(
																		bCrear)
																.addGap(50, 50,
																		50)
																.addComponent(
																		bEditar)
																.addPreferredGap(
																		javax.swing.LayoutStyle.ComponentPlacement.RELATED,
																		65,
																		Short.MAX_VALUE)
																.addComponent(
																		bBuscar))
												.addComponent(
														jScrollPane1,
														javax.swing.GroupLayout.DEFAULT_SIZE,
														384, Short.MAX_VALUE)
												.addComponent(
														tfNombre,
														javax.swing.GroupLayout.DEFAULT_SIZE,
														384, Short.MAX_VALUE))
								.addContainerGap()));
		layout.setVerticalGroup(layout
				.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
				.addGroup(
						layout.createSequentialGroup()
								.addGap(53, 53, 53)
								.addGroup(
										layout.createParallelGroup(
												javax.swing.GroupLayout.Alignment.BASELINE)
												.addComponent(jLabel1)
												.addComponent(
														tfNombre,
														javax.swing.GroupLayout.PREFERRED_SIZE,
														javax.swing.GroupLayout.DEFAULT_SIZE,
														javax.swing.GroupLayout.PREFERRED_SIZE))
								.addGap(18, 18, 18)
								.addGroup(
										layout.createParallelGroup(
												javax.swing.GroupLayout.Alignment.TRAILING)
												.addGroup(
														layout.createSequentialGroup()
																.addComponent(
																		jLabel2)
																.addGap(50, 50,
																		50))
												.addGroup(
														layout.createSequentialGroup()
																.addComponent(
																		jScrollPane1,
																		javax.swing.GroupLayout.PREFERRED_SIZE,
																		62,
																		javax.swing.GroupLayout.PREFERRED_SIZE)
																.addPreferredGap(
																		javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)))
								.addGroup(
										layout.createParallelGroup(
												javax.swing.GroupLayout.Alignment.TRAILING)
												.addComponent(jLabel3)
												.addGroup(
														layout.createParallelGroup(
																javax.swing.GroupLayout.Alignment.BASELINE)
																.addComponent(
																		rbActivo)
																.addComponent(
																		rbInactivo)))
								.addPreferredGap(
										javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
								.addGroup(
										layout.createParallelGroup(
												javax.swing.GroupLayout.Alignment.LEADING)
												.addGroup(
														layout.createSequentialGroup()
																.addComponent(
																		dcFechaInicio,
																		javax.swing.GroupLayout.PREFERRED_SIZE,
																		javax.swing.GroupLayout.DEFAULT_SIZE,
																		javax.swing.GroupLayout.PREFERRED_SIZE)
																.addGap(8, 8, 8)
																.addComponent(
																		dcFechaFin,
																		javax.swing.GroupLayout.PREFERRED_SIZE,
																		javax.swing.GroupLayout.DEFAULT_SIZE,
																		javax.swing.GroupLayout.PREFERRED_SIZE)
																.addPreferredGap(
																		javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
																.addGroup(
																		layout.createParallelGroup(
																				javax.swing.GroupLayout.Alignment.BASELINE)
																				.addComponent(
																						tfIteraciones,
																						javax.swing.GroupLayout.PREFERRED_SIZE,
																						javax.swing.GroupLayout.DEFAULT_SIZE,
																						javax.swing.GroupLayout.PREFERRED_SIZE)
																				.addComponent(
																						jLabel6))
																.addPreferredGap(
																		javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
																.addGroup(
																		layout.createParallelGroup(
																				javax.swing.GroupLayout.Alignment.BASELINE)
																				.addComponent(
																						cbTipoProyecto,
																						javax.swing.GroupLayout.PREFERRED_SIZE,
																						javax.swing.GroupLayout.DEFAULT_SIZE,
																						javax.swing.GroupLayout.PREFERRED_SIZE)
																				.addComponent(
																						jLabel7)))
												.addGroup(
														layout.createSequentialGroup()
																.addComponent(
																		jLabel4)
																.addGap(18, 18,
																		18)
																.addComponent(
																		jLabel5)))
								.addPreferredGap(
										javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
								.addGroup(
										layout.createParallelGroup(
												javax.swing.GroupLayout.Alignment.BASELINE)
												.addComponent(
														cbTecnologia,
														javax.swing.GroupLayout.PREFERRED_SIZE,
														javax.swing.GroupLayout.DEFAULT_SIZE,
														javax.swing.GroupLayout.PREFERRED_SIZE)
												.addComponent(jLabel8))
								.addPreferredGap(
										javax.swing.LayoutStyle.ComponentPlacement.RELATED)
								.addGroup(
										layout.createParallelGroup(
												javax.swing.GroupLayout.Alignment.BASELINE)
												.addComponent(bCrear)
												.addComponent(bBuscar)
												.addComponent(bEditar))
								.addContainerGap(
										javax.swing.GroupLayout.DEFAULT_SIZE,
										Short.MAX_VALUE)));

		pack();
	}// </editor-fold>//GEN-END:initComponents

	private void bCrearActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_bCrearActionPerformed

		Boolean estado = null;

		if (rbActivo.isSelected()) {
			estado = true;
		} else {
			estado = false;
		}
		Proyecto pro = control.buscarProyecto(tfNombre.getText());

		if (pro == null) {
			if (!tfNombre.getText().equals("")
					&& !taDescripcion.getText().equals("")
					&& dcFechaFin.getDate() != null
					&& dcFechaInicio.getDate() != null
					&& !tfIteraciones.getText().equals("")) {

				control.crearProyecto(tfNombre.getText(),
						taDescripcion.getText(), estado,
						dcFechaInicio.getDate(), dcFechaFin.getDate(),
						Integer.parseInt(tfIteraciones.getText()),
						(TipoProyecto) cbTipoProyecto.getSelectedItem(),
						(Tecnologia) cbTecnologia.getSelectedItem());

				tfNombre.setText("");
				taDescripcion.setText("");
				dcFechaFin.setDate(null);
				dcFechaInicio.setDate(null);
				tfIteraciones.setText("");
				JOptionPane
						.showMessageDialog(null, "Proyecto Creado con exito");
			} else {
				JOptionPane.showMessageDialog(null,
						"Hay campos que no tienen valor", "Campos vacios",
						JOptionPane.ERROR_MESSAGE);
			}

		} else {
			JOptionPane.showMessageDialog(null, "El Proyecto ya existe",
					"Proyecto Eixtente", JOptionPane.ERROR_MESSAGE);
		}

	}// GEN-LAST:event_bCrearActionPerformed

	private void bEditarActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_bEditarActionPerformed
		Boolean estado = null;

		if (rbActivo.isSelected()) {
			estado = true;
		} else {
			estado = false;
		}
		try {
			if (!tfNombre.getText().equals("")
					&& !taDescripcion.getText().equals("")
					&& dcFechaFin.getDate() != null
					&& dcFechaInicio.getDate() != null
					&& !tfIteraciones.getText().equals("")) {

				control.editarProyecto(tfNombre.getText(),
						taDescripcion.getText(), estado,
						dcFechaInicio.getDate(), dcFechaFin.getDate(),
						Integer.parseInt(tfIteraciones.getText()),
						(TipoProyecto) cbTipoProyecto.getSelectedItem(),
						(Tecnologia) cbTecnologia.getSelectedItem());

				tfNombre.setText("");
				taDescripcion.setText("");
				dcFechaFin.setDate(null);
				dcFechaInicio.setDate(null);
				tfIteraciones.setText("");
				JOptionPane.showMessageDialog(null,
						"Proyecto Editado con exito");
			} else {
				JOptionPane.showMessageDialog(null,
						"Hay campos que no tienen valor", "Campos vacios",
						JOptionPane.ERROR_MESSAGE);
			}
		} catch (Exception e) {
			JOptionPane.showMessageDialog(null, e.getMessage(),
					"Proyecto Inexistente", JOptionPane.ERROR_MESSAGE);
		}
	}// GEN-LAST:event_bEditarActionPerformed

	private void bBuscarActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_bBuscarActionPerformed
		Proyecto proyecto = control.buscarProyecto(tfNombre.getText());

		if (proyecto != null) {
			taDescripcion.setText(proyecto.getDescripcion());
			tfIteraciones.setText("" + proyecto.getIteraciones());
			dcFechaFin.setDate(proyecto.getFechaFin());
			dcFechaInicio.setDate(proyecto.getFechaInicio());

			if (proyecto.getEstado() == true) {
				rbActivo.setSelected(true);
				rbInactivo.setSelected(false);
			} else {
				rbActivo.setSelected(false);
				rbInactivo.setSelected(true);
			}

			cbTipoProyecto.setSelectedItem(proyecto.getTipoProyectoBean());
			cbTecnologia.setSelectedItem(proyecto.getProyectoTecnologias().get(
					0));

		} else {
			JOptionPane.showMessageDialog(null, "El usuario no existe");
		}
	}// GEN-LAST:event_bBuscarActionPerformed

	/**
	 * @param args
	 *            the command line arguments
	 */
	public static void main(String args[]) {
		java.awt.EventQueue.invokeLater(new Runnable() {

			public void run() {
				new VentanaProyecto().setVisible(true);
			}
		});
	}

	// Variables declaration - do not modify//GEN-BEGIN:variables
	private javax.swing.JButton bBuscar;
	private javax.swing.JButton bCrear;
	private javax.swing.JButton bEditar;
	private javax.swing.ButtonGroup buttonGroup1;
	private javax.swing.JComboBox cbTecnologia;
	private javax.swing.JComboBox cbTipoProyecto;
	private com.toedter.calendar.JDateChooser dcFechaFin;
	private com.toedter.calendar.JDateChooser dcFechaInicio;
	private javax.swing.JLabel jLabel1;
	private javax.swing.JLabel jLabel2;
	private javax.swing.JLabel jLabel3;
	private javax.swing.JLabel jLabel4;
	private javax.swing.JLabel jLabel5;
	private javax.swing.JLabel jLabel6;
	private javax.swing.JLabel jLabel7;
	private javax.swing.JLabel jLabel8;
	private javax.swing.JScrollPane jScrollPane1;
	private javax.swing.JRadioButton rbActivo;
	private javax.swing.JRadioButton rbInactivo;
	private javax.swing.JTextArea taDescripcion;
	private javax.swing.JTextField tfIteraciones;
	private javax.swing.JTextField tfNombre;
	// End of variables declaration//GEN-END:variables
}
